document.addEventListener('DOMContentLoaded', function() {
    // 在i18n初始化完成后，确保页面文本已翻译
    if (window.i18n) {
        i18n.translatePage();
    }
    
    // 获取DOM元素
    const backButton = document.querySelector('.back-button');
    const loginForm = document.getElementById('login-form');
    const emailInput = document.getElementById('email');
    const passwordInput = document.getElementById('password');
    const rememberCheckbox = document.getElementById('remember');
    const loginButton = document.getElementById('login-button');
    const errorMessage = document.getElementById('error-message');
    const loadingOverlay = document.getElementById('loading-overlay');
    const togglePasswordBtn = document.querySelector('.toggle-password');
    
    // 检查是否有重定向URL
    const params = new URLSearchParams(window.location.search);
    const redirectUrl = params.get('redirect') || '../index.html';
    
    // 如果用户已登录，直接重定向
    if (apiService.isLoggedIn()) {
        window.location.href = redirectUrl;
        return;
    }
    
    // 返回按钮
    backButton.addEventListener('click', function() {
        window.history.back();
    });
    
    // 切换密码可见性
    if (togglePasswordBtn) {
        togglePasswordBtn.addEventListener('click', function() {
            const type = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';
            passwordInput.setAttribute('type', type);
            
            // 切换眼睛图标
            const eyeIcon = this.querySelector('.eye-icon');
            if (type === 'text') {
                eyeIcon.src = '../images/eye-off.svg';
            } else {
                eyeIcon.src = '../images/eye.svg';
            }
        });
    }
    
    // 表单提交
    loginForm.addEventListener('submit', async function(e) {
        e.preventDefault();
        
        // 获取表单数据
        const email = emailInput.value.trim();
        const password = passwordInput.value;
        const remember = rememberCheckbox.checked;
        
        // 表单验证
        if (!email) {
            showError(i18n ? i18n.t('error_login') : '登录失败，请检查邮箱和密码');
            emailInput.focus();
            return;
        }
        
        if (!validateEmail(email)) {
            showError(i18n ? i18n.t('error_login') : '登录失败，请检查邮箱和密码');
            emailInput.focus();
            return;
        }
        
        if (!password) {
            showError(i18n ? i18n.t('error_login') : '登录失败，请检查邮箱和密码');
            passwordInput.focus();
            return;
        }
        
        // 显示加载状态
        showLoading(true);
        
        try {
            // 调用登录API
            const result = await apiService.login(email, password);
            
            // 如果需要记住邮箱
            if (remember) {
                localStorage.setItem('saved-email', email);
            } else {
                localStorage.removeItem('saved-email');
            }
            
            // 登录成功，重定向
            window.location.href = redirectUrl;
        } catch (error) {
            console.error('登录失败:', error);
            showError(i18n ? i18n.t('error_login') : '登录失败，请检查邮箱和密码');
            showLoading(false);
        }
    });
    
    // 显示错误消息
    function showError(message) {
        errorMessage.textContent = message;
        errorMessage.style.display = 'block';
        
        // 3秒后自动隐藏
        setTimeout(() => {
            errorMessage.style.display = 'none';
        }, 3000);
    }
    
    // 控制加载状态
    function showLoading(show) {
        if (show) {
            loadingOverlay.classList.add('show');
            loginButton.disabled = true;
        } else {
            loadingOverlay.classList.remove('show');
            loginButton.disabled = false;
        }
    }
    
    // 验证邮箱格式
    function validateEmail(email) {
        const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email.toLowerCase());
    }
    
    // 检查和恢复记住的邮箱
    function checkSavedEmail() {
        const savedEmail = localStorage.getItem('saved-email');
        if (savedEmail) {
            emailInput.value = savedEmail;
            rememberCheckbox.checked = true;
        }
    }
    
    // 初始化
    checkSavedEmail();
    
    // 监听语言变更事件
    window.addEventListener('message', function(event) {
        // 确保消息来源可信
        if (event.origin !== window.location.origin) return;
        
        // 处理语言变更消息
        if (event.data && event.data.type === 'language-change') {
            const language = event.data.language;
            
            // 如果页面有i18n对象，应用语言变更
            if (window.i18n) {
                window.i18n.changeLanguage(language);
            }
        }
    });
}); 